package org.example;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Test {
    public static void main(String[] args) {
        List<String> originalList = new ArrayList<>(Arrays.asList(
                "[[logo.png]]",
                "File [[data.pdf]] is here",
                "[[screenshot_2023.png]] saved",
                "Invalid[[file.jpg]]",
                "No match here",
                "![[附件/Pasted image 20240703175416.png]]",
                "[[附件/screenshot_2023.png]]"
        ));

        List<String> resultList = new ArrayList<>();

        // 正则表达式解释：
        // \\[\\[      匹配开始的 [[
        // (附件/)?   匹配可选的 "附件/"
        // (.*?\\.png) 捕获任意字符直到 .png（非贪婪模式）
        // \\]\\]      匹配结束的 ]]
        Pattern pattern = Pattern.compile("\\[\\[(附件/)?(.*?\\.png)\\]\\]");

        for (String str : originalList) {
            Matcher matcher = pattern.matcher(str);
            while (matcher.find()) {
                // 获取第一个捕获组的内容（即括号内的部分）
                String matchedContent = matcher.group(2);
                resultList.add(matchedContent);
            }
        }

        System.out.println(resultList);
        // 输出: [logo.png, screenshot_2023.png, logo.png, screenshot_2023.png]
    }
}
